 package com.company.genealogy.common.init;

 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.company.genealogy.web.entity.User;
 import com.company.genealogy.web.mapper.UserMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.CommandLineRunner;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Component;

 /**
 * @author chenzhixiang
 */
 @Component
 public class DataInitializer implements CommandLineRunner {

    @Autowired
    private UserMapper userMapper;

    @Autowired
    private PasswordEncoder passwordEncoder;

    @Override
    public void run(String... args) throws Exception {
        // 检查是否已存在管理员用户
        User existingAdmin = userMapper.selectOne(
            new QueryWrapper<User>().eq("username", "admin")
        );

        if (existingAdmin == null) {
            // 创建默认管理员用户
//            User adminUser = new User();
//            adminUser.setUserType("admin");
//            adminUser.setUsername("admin");
//            // 默认密码：123456
//            adminUser.setPasswordHash(passwordEncoder.encode("123456"));
//            adminUser.setNickname("管理员");
//            adminUser.setStatus(1);
//            adminUser.setCreatedAt(new Date());
//            userMapper.insert(adminUser);
//
//            // 创建超级管理员角色
//            Role superAdminRole = new Role();
//            superAdminRole.setName("超级管理员");
//            superAdminRole.setCode("ROLE_ADMIN");
//            superAdminRole.setDescription("系统超级管理员，拥有所有权限");
//            roleMapper.insert(superAdminRole);
//
//            // 创建超级管理员用户角色关联
//            UserRole superAdminUserRole = new UserRole();
//            superAdminUserRole.setUserId(adminUser.getId());
//            superAdminUserRole.setRoleId(superAdminRole.getId());
//            userRoleMapper.insert(superAdminUserRole);
//
//            // 创建
            System.out.println("默认管理员用户创建成功！用户名：admin，加密密码：" + passwordEncoder.encode("123456"));
            System.out.println("默认管理员用户创建成功！用户名：admin，密码：123456");
        } else {
            System.out.println("默认管理员用户创建成功！用户名：admin，加密密码：" + passwordEncoder.encode("123456"));
            System.out.println("管理员用户已存在，跳过初始化");
        }
    }
 }